1. Field of the Invention
This invention relates to electronic gaming devices and in particular security measures in such devices.
2. Description of the Related Art
Electronic gaming devices, as used in casinos and similar gaming establishments, are common in the gaming industry. In particular, gaming devices employing video displays, microprocessor control, game software programs, and related data files describing and defining the game or games played are well-known in the art.
One problem seen in the industry arises from the need to ensure that games have not been tampered with or modified so as to unfairly affect payouts. In current computer- or microprocessor-based gaming devices (machines), all game software programs and related data files (such as graphics and paytables) are stored in read-only memory (ROM) physically located inside the device""s cabinet. The game software is thus under the physical control of the gaming establishment or casino using the device. The ROM is either soldered into the circuit board of the game or mounted in a socket with a tamper-proof device such as a security tape. These precautions are mandated in some locations by gaming regulators to prevent manipulation of the gaming program once installed in the machine.
With the comparatively recent advent of multimedia games, e.g., games employing sophisticated and complex sound, graphic, and video effects, the memory storage limitations of ROM devices has become a limitation. The latest multimedia games require many times more computer memory to hold the game program software and associated data files, such as special graphics, video, or sound files. The high cost, power consumption, and physical space required to install enough ROM in a gaming device to hold modern multimedia games has become an issue slowing the growth of these more appealing games.
Mass storage devices, such as local or networked disk, tape, and/or CD-ROM drives are known in the art for their ability to store such large multimedia games and related data files. Software and data files are loaded from the mass storage device into random access memory (RAM) within the gaming device by conventional means long known in the computer arts. However, RAM (by its very nature) is extremely easy to alter. Gaming regulators are reluctant to allow the use of RAM-based software and data storage systems without assurance that the game cannot be tampered with during play, either by the house or by a player so as to create an unfair game.
What is needed is a method of verifying and authenticating game program software and related data files upon loading into a gaming machine from a mass storage system, during play, and on the occurrence of certain events so that the game integrity is positively ensured at all times.
Presently disclosed is a method and apparatus for securing the game software and related data files used by a casino gaming device and for authenticating such files during game startup and play. In one embodiment of the present invention, a verification code is generated by the manufacturer for each software file and data file used by the game. The verification codes are stored in a non-volatile, tamper-proof, read-only memory device securely attached to the gaming device. On some or every download of the game software and/or related data files into the gaming device, commencement of a game, or on the occurrence of certain pre-defined events, the stored verification code is used to validate the game software and data files. Additionally, in some embodiments verification is performed automatically on a periodic basis without operator or player action.
Verification consists of calculating a xe2x80x9clivexe2x80x9d verification code for some or all of the software and data files present in the alterable random access memory using the same method chosen to create the stored verification code described above. In some embodiments of the present invention, the verification code is the result of a hash function of trusted copies of each software and related data file. If the live code matches the stored code for each and every file in question, then operation and play proceeds normally. If, however, one or more codes do not match, an error condition is declared and operation is halted. Notification of the error condition follows according to means well-known in the art.